package com.jt.controller;

import com.jt.pojo.User;
import com.jt.service.UserSerivce;
import com.jt.vo.PageResult;
import com.jt.vo.SysResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController//返回值都是JSON串
@CrossOrigin //解决跨域问题 url/ajax url
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserSerivce userSerivce;
//    @GetMapping("/findAll")
//    public List<User> findAll(){
//        return userSerivce.findALL();
//    }
    @PostMapping ("/login")
    public SysResult login(@RequestBody User user){

        String token = userSerivce.login(user);
        if (StringUtils.hasLength(token)){
            return SysResult.success( token);
        }
        return SysResult.fail();
    }
    @GetMapping("/list")
    public SysResult getUserList(PageResult pageResult){
        pageResult = userSerivce.getUserList(pageResult);
        return SysResult.success(pageResult);
    }
    /*需求:根据ID修改用户的状态信息
    URL:/status/${id}/${status}
    * 参数:2个参数 用户对象接收
    返回值:SysResult对象
    * */
    @PutMapping("/status/{id}/{status}")
    public SysResult updateStatus(User user){
          userSerivce.updateStatus(user);
          return SysResult.success();
    }

    /*需求:实现用户新增 设定状态true ,创建时间/修改时间
    URL:/addUser
    参数: form表单对象 利用User对象接收
    返回值: SysResult对象
    * */
    @PostMapping("/addUser")
    public SysResult addUser(@RequestBody User user){
        userSerivce.addUser(user);
                return SysResult.success();
    }
    @DeleteMapping("/{id}")
    public SysResult deleteUser( @PathVariable Integer id){

        userSerivce.deleteUser(id);
        return SysResult.success();
    }
    @GetMapping("/{id}")
    public  SysResult getUserById(@PathVariable Integer id){
         User user=userSerivce.findUserById(id);
         return SysResult.success(user);
    }
    @PutMapping("/updateUser")
    public SysResult updateUser(@RequestBody User user){
        userSerivce.updateUser(user);
        return SysResult.success();
    }
}
